package pda.ancien;

import java.io.Serializable;

/**
 * <h1>Classe Cours.</h1>
 * Cette classe décrit une activite de type Cours. 
 * Elle hérite de Activite et définit des parametres supplémentaires qui la diffère d'Activite. 
 * Elle definit une matiere et un professeur en plus des parametres de base definis dans Activite
 * Cette classe comprend donc les même propriétés que Activites en implémentant Comparable et Serializable.
 * @author Mathieu Cornic
 * @author Camille Guerin
 * A rendre Jeudi 19 juin 2008
 */
public class Cours extends Activite implements Comparable<Activite>, Serializable{
	
    private static final long serialVersionUID = 1L;//numero de version de la classe
	
    private String matiere, professeur;//variables supplémentaires à Activite qui définissent un Cours
	
    /**
     * Constructeur de la classe.
     * Il permet de definir un cours en fonction des parametres voulus (matiere et professeur sont en supplément d'Activite)
     * Ces parametres seront utilises ensuite dans le reste de la classe
     * @param id l'identifiant du cours (unique)
     * @param motif le motif du cours
     * @param heureDebut l'heure de debut du cours
     * @param heureFin l'heure de fin du cours
     * @param minuteDebut la minute de debut du cours
     * @param minuteFin la minute de fin du cours
     * @param jour le jour du cours
     * @param mois le mois du cours (entier)
     * @param annee l'annee du cours
     * @param lieu le lieu du cours
     * @param type le type du cours
     * @param matiere la matiere du cours
     * @param professeur le professeur du cours
     */
    public Cours (int id, String motif, int heureDebut, int heureFin, int minuteDebut, int minuteFin, int jour, int mois, int annee, String lieu,  String type, String matiere,String professeur) {
		
	super (id, motif, heureDebut, heureFin, minuteDebut, minuteFin, jour, mois, annee, lieu, type);// on utilise le constructeur de base d'Activite
	//et on defini les nouvelles variables
	this.matiere = matiere;
	this.professeur = professeur;
    }
	
    //######################## Getters ##########################
	
    /**
     * Getter qui renvoit la matiere de l'activite
     * @return la matiere de l'activite
     */
    public String getMatiere () {
	return matiere;
    }
	
    /**
     * Getter qui renvoit le professeur de l'activite
     * @return le professeur de l'activite
     */
    public String getProfesseur () {
	return professeur;
    }
	
	
    //########################## Setters ##########################
	
    /**
     * Setter qui remplace la matiere de l'activite par celle passee en parametre
     * @param matiere la nouvelle matiere
     */
    public void setMatiere (String matiere) {
	this.matiere = matiere;
    }
	
    /**
     * Setter qui remplace le professeur de l'activite par celui passe en parametre
     * @param professeur le nouveau professeur
     */
    public void setProfesseur (String professeur) {
	this.professeur = professeur;
    }
	
    /** 
     * Methode qui permet de convertir dans un String, tous les parametres d'une Activite
     * @return le string contenant tous les parametres
     */
    public String toString () {
	String s = super.toString ()+";"+matiere+";"+professeur;
	return s;
    }
}
